当前位置:  开发笔记 > 编程语言 > 正文

是e =事件|| window.event; IE8兼容性可接受

如何解决《是e=事件||window.event;IE8兼容性可接受》经验,为你挑选了1个好方法。

这段代码(取自这篇文章)已经阻止我Error: 'null' is null or not an object在IE8中尝试使用时收到错误消息()preventDefault()

$(document).ready(function () {
    $("#submitBtn").on("click", pD(event));
});

function pD(e) {
    e = event || window.event;
    if (e.preventDefault) {
        e.preventDefault();
    } else {
        e.returnValue = false;
    }
}

它似乎工作.然而,这篇文章中的评论(第四评论下来)让我担心这可能是一个糟糕的方法.它在某种程度上是可接受的还是不可接受的?评论的语言非常强,所以这让我很好奇.



1> nnnnnn..:

首先,您分配点击处理程序的方式不正确:

$("#submitBtn").on("click", pD(event));

您正在调用pD()函数并将其返回值传递给该.on()方法.您只需要传递对该函数的引用:

$("#submitBtn").on("click", pD);

其次,您正在使用jQuery,因此您不需要测试e参数并将其设置为,window.event因为jQuery会为您处理这些兼容性问题.您可以使用e.preventDefault()知道jQuery将实现它.


`.on()`方法需要在该参数中有一个函数引用,所以如果给它一个,它会很高兴.你可以通过把'pD` _不带括号来传递你的函数的引用 - 它会立即调用你的函数的parens并将返回值(`undefined`)传递给`.on()`.我没有仔细检查过jQuery代码,但考虑到`.on()`有一些可选参数可以添加_before_函数引用它必须测试其参数的类型,所以如果你提供的参数是'n'一个函数引用它可能会混淆并给出你显示的错误.
推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有